package com.yungu.swift.system.sys.dao;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.yungu.swift.base.mapper.IMapper;
import com.yungu.swift.system.sys.model.dto.SysAccountPassengerDto;
import com.yungu.swift.system.finance.model.param.AdminAccountFlowPageParam;
import com.yungu.swift.system.finance.model.param.AdminAccountPageParam;
import com.yungu.swift.system.sys.model.vo.SysPassengerAccountFlowVo;
import com.yungu.swift.system.sys.model.vo.SysPassengerAccountVo;

import java.util.List;
import java.util.Map;

public interface SysAccountPassengerMapper extends IMapper<SysAccountPassengerDto> {

    /**
     * 乘客账户查询
     *
     * @param pageParam
     * @return
     */
    PageList<SysPassengerAccountVo> queryPageVo(AdminAccountPageParam pageParam, PageBounds pageBounds);

    /**
     * 乘客账户查询（EXCEL导出）--注意与分页方法保持同名
     *
     * @param pageParam 参数集合
     * @return List
     * @author Zerrion
     * @date 2018/10/23
     */
    List<SysPassengerAccountVo> queryPageVo(AdminAccountPageParam pageParam);

    /**
     * 查询乘客数量及账号总额
     *
     * @param pageParam
     * @return
     */
    SysPassengerAccountVo statistics(AdminAccountPageParam pageParam);


    /**
     * 查询乘客详情
     *
     * @param map
     * @return
     */
    PageList<SysPassengerAccountFlowVo> flowQueryPage(Map<String, Object> map, PageBounds pageBounds);

    /**
     * 管理后台查询账号明细
     *
     * @param flowPageParam
     * @param
     * @return
     */
    List<SysPassengerAccountFlowVo> flowQueryPage(AdminAccountFlowPageParam flowPageParam);

    /**
     * 查询乘客账号信息
     *
     * @param map
     * @return
     */
    SysPassengerAccountVo findAccountPassengerVo(Map<String, Object> map);
}